<?
	/* Se asegura que el archivo es incluido por el index */
		defined( 'LOAD_MODULE_ACTION' ) or die( 'No esta permitido el acceso directo a ' . __FILE__ );
	/* Cuando se hace el include del archivo automaticamente crea un objeto y lo guarda en una variable temporal */
		$this->oTmpObject = new Academia_lst( $this );

	class Academia_lst extends Lst
	{
	function Academia_lst( &$oModule )
		{
			$this->Lst( $oModule );
		}

	function setLevel()
		{
			switch ( $this->getOptionView() )
			{
				case 'E':
					$this->aShowColumns = array( 'Nombre', 'ncRotulo' );
					break;
				case 'L':
					$this->aShowColumns = array( 'bEstrella', 'ncRotulo', 'Nombre', 'Domicilio', 'Telefono' );
					if ( $this->aFields['ncFunciones']  )  $this->aShowColumns[] = 'Funcion';
					break;
			}
		}
function makeColumn ( $aRow, $cField )
		{
			switch( $cField )
			{			
				case 'Habilitaion':
					if ( $aRow[cHabilitacion] == '-1' )
						$cReturn = "En tramite" ;
					elseif ( $aRow[cHabilitacion] == '0' )
						$cReturn = "No";
					else
						$cReturn = $aRow['cHabilitacion'] ;
					break;
				case 'Cursos':
					$cReturn = implode( "," , $this->oDatabase->getArray( "SELECT cdCursoTematico FROM gtAcademiaCurso as EAc JOIN gcCursoTematico as Act ON Act.ncCursoTematico = EAc.ncCursoTematico WHERE ncEstablecimiento = " . $aRow['ncEstablecimiento'] ) );
					break;
				case 'Niveles':
					$cReturn = implode( "," , $this->oDatabase->getArray( "SELECT cdNivelAcademia FROM gtAcademiaNivel as EAc JOIN gcNivelAcademia as Act ON Act.ncNivelAcademia = EAc.ncNivelAcademia WHERE ncEstablecimiento = " . $aRow['ncEstablecimiento'] ) );
					break;
				case 'Turnos':
					$cReturn = implode( "," , $this->oDatabase->getArray( "SELECT cdTurno FROM gtAcademiaTurno as EAc JOIN gcTurno as Act ON Act.ncTurno = EAc.ncTurno WHERE ncEstablecimiento = " . $aRow['ncEstablecimiento'] ) );
					break;
				case 'Calidad':
					$cReturn = implode( "," , $this->oDatabase->getArray( "SELECT cdCalidad FROM gtEstablecimientoCalidad as EAc JOIN gcCalidad as Act ON Act.ncCalidad = EAc.ncCalidad WHERE ncEstablecimiento = " . $aRow['ncEstablecimiento'] ) );
					break;
				case 'Certificaciones':
					$cReturn = implode( "," , $this->oDatabase->getArray( "SELECT cdCertificacion FROM gtAcademiaCertificacion as EAc JOIN gcCertificacion as Act ON Act.ncCertificacion = EAc.ncCertificacion WHERE ncEstablecimiento = " . $aRow['ncEstablecimiento'] ) );
					break;
				case 'Frecuencias':
					$cReturn = implode( "," , $this->oDatabase->getArray( "SELECT cdFrecuencia FROM gtAcademiaFrecuencia as EAc JOIN gcFrecuencia as Act ON Act.ncFrecuencia = EAc.ncFrecuencia WHERE ncEstablecimiento = " . $aRow['ncEstablecimiento'] ) );
					break;
				case 'Servicios':
					$cReturn = implode( "," , $this->oDatabase->getArray( "SELECT cdServicio FROM gtEstablecimientoServicio as EAc JOIN gcServicio as Act ON Act.ncServicio = EAc.ncServicio WHERE ncEstablecimiento = " . $aRow['ncEstablecimiento'] ) );
					break;
				case 'Tipo':
					$cReturn = implode( "," , $this->oDatabase->getArray( "SELECT cdTipoCocina FROM gtGastronomiaTipoCocina as GTi JOIN gcTipoCocina as TCo ON TCo.ncTipoCocina = GTi.ncTipoCocina WHERE ncEstablecimiento = " . $aRow['ncEstablecimiento'] ) );
					break;
				case 'Productos':
					$cReturn = implode( "," , $this->oDatabase->getArray( "SELECT cdProducto FROM gtProductoEstablecimiento as PEs  JOIN gtProductoTuristico as PTu ON PEs.ncProducto = PTu.ncProducto  WHERE ncEstablecimiento =   " . $aRow['ncEstablecimiento']  ) );
					break;
				case 'Domicilio':
					$cReturn = $this->oDomicilio->getDescription( $aRow["ncDomicilio"] );
					break;
				case 'Ubicacion':
					$cReturn = $this->oDomicilio->getUbicacion();
				break;
				case 'Telefono':
					$cReturn = $this->oDomicilio->aFields['cTelefono']->getValue();
					break;
				default:
					return false;
				break;
			}
			return $cReturn;
		}
		function initialize()
		{
			$this->oFiltro = $this->oModule->loadClass( 'Academia_frm' );
			$this->aFields = array_merge ( (array)$this->aFields,  (array)$this->oFiltro->getFieldArray() );
			// Setea el titulo y la descripcion de la tabla
			$this->setTitle ( "Academia" );
			$this->setSummary( "Esta tabla contiene el listado de Academia" );
			$this->addColumn ( 'Nombre', 'cdEstablecimiento', true );
			$this->aFields['aRotulo'] = is_array( getParam( 'aRotulo' ) )  ? implode(",", getParam( 'aRotulo' ) ): getParam( 'aRotulo' );
			$this->addColumnStar ( 'bEstrella', MODIFICAR_ESTRELLA_ESTABLECIMIENTO, 'ncEstablecimiento', 'bEstrella' );
			$this->addColumnTag( 'ncRotulo', ACTUALIZAR_TAG_ESTABLECIMIENTOS, 'ncEstablecimiento', 'gtEstablecimientoRotulo', $this->oDatabase->getKeyArray('SELECT ncRotulo, cdRotulo FROM gtRotuloEstablecimiento' ) );
			$this->addColumn ( 'Nro', 'ncEstablecimiento', true );
			$this->addColumnAction ( 'Nombre', VER_ESTABLECIMIENTO, 'ncEstablecimiento', 'cdEstablecimiento' );
			$this->addColumn ( 'Domicilio', '' );
			$this->addColumn ( 'Ubicacion', '' );
			$this->addColumn ( 'Telefono' );
			$this->addColumn ( 'Web', 'cPaginaWeb' );
			$this->addColumn ( 'Email', 'cEmail' );
			$this->addColumn ( 'Servicios', '' );
			$this->addColumn ( 'Productos', '' );
			$this->addColumn ( 'Cursos', '' );
			$this->addColumn ( 'Niveles', '' );
			$this->addColumn ( 'Turnos', '' );
			$this->addColumn ( 'Calidad', '' );
			$this->addColumn ( 'Alumnos', 'nqAlumnos' );
			$this->addColumn ( 'Habilitaion', '' );
			$this->addColumn ( 'Certificaciones', '' );
			$this->addColumn ( 'Frecuencias', '' );
			$this->addColumn ( 'Organizacion', 'cdOrganizacion' );
		}
	function query()
		{
			// Crea el Objeto Domicilio
				$oModAdministracion =& loadModule('administracion');
				$oModAdministracion->setSubModule('entidades');
				$this->oDomicilio = $oModAdministracion->loadClass( 'Domicilio_frm' );
			// Arma el Query
				$cSql = "SELECT Est.ncEstablecimiento, Aca.nqAlumnos, Aca.cHabilitacion, Est.dModificacion, Est.cdEstablecimiento, Est.ncDomicilio, Est.bBaja, Est.bEstrella , Est.cPaginaWeb, Est.cEmail, Est.cHorarios
							FROM gtEstablecimiento as Est
								JOIN gtAcademia AS Aca
								ON Aca.ncEstablecimiento = Est.ncEstablecimiento 
								LEFT JOIN atOrganizacion as Org
								ON Org.ncOrganizacion = Est.ncOrganizacion ";
			// Arma el Filtro de la Consulta			
				$this->oFiltro->setDefaultSearchField( "cdEstablecimiento" );
				$this->oWhere->addArray ( $this->oFiltro->getFilterdArray('Aca')  );
			return $cSql . $this->oWhere->make();
		}
	function makeListActions()
		{
			$cParametroRegistro =  $this->getFieldString();
			$this->addListAction ( AGREGAR_ACADEMIA, $cParametroRegistro, 'I', VENTANA_SECUNDARIA  );
		}
	function makeRowActions( $aRow )
		{
			$cParametroRegistro = "ncEstablecimiento=" . $aRow["ncEstablecimiento"];
			$this->addRowAction ( MODIFICAR_UN_ESTABLECIMIENTO, $cParametroRegistro , '', VENTANA_SECUNDARIA );
			$this->addRowAction ( ELIMINAR_ACADEMIA ,  $cParametroRegistro );
		}
	}
?>